package gradle.mybatis.common.config;

import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.context.annotation.Configuration;

/**
 *
 * @author 1141193930@qq.com
 */
@Data
@RefreshScope
@Configuration
@ConditionalOnProperty(name = "snowflake.enabled", havingValue = "true")
public class SnowflakeConfig {

    /**
     * 终端ID
     * <p>
     * 用于标识同一数据中心内的不同机器或服务实例，保证同一机房的不同机器生成的ID不重复。
     */
    @Value("${snowflake.workerId:1}")
    private long workerId;

    /**
     * 数据中心ID
     * <p>
     * 用于标识不同的数据中心或机房，保证不同机房（如北京、上海机房）的机器生成的ID不重复
     */
    @Value("${snowflake.datacenterId:1}")
    private long datacenterId;

}
